using Arrowgene.Buffers;
using Arrowgene.Ddon.Shared.Network;
using Arrowgene.Ddon.Shared.Model;
using System.Collections.Generic;

namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
{
    public class S2CMandragoraGetMyMandragoraRes : IPacketStructure
    {
        public PacketId Id => PacketId.S2C_MANDRAGORA_GET_MY_MANDRAGORA_RES;

        public S2CMandragoraGetMyMandragoraRes()
        {
        }

        public C2SMandragoraGetMyMandragoraReq MandragoraReq { get; set; }
        public List<MyRoomCsv> MyRoomCsv { get; set; }

        public class Serializer : PacketEntitySerializer<S2CMandragoraGetMyMandragoraRes>
        {
            public override void Write(IBuffer buffer, S2CMandragoraGetMyMandragoraRes obj)
            {
                MyRoomCsv myRoomCsv = obj.MyRoomCsv[0];
                WriteByteArray(buffer, Mandragora0);
                WriteUInt32(buffer, myRoomCsv.MandragoraId1);
                WriteByte(buffer, 2);
                WriteUInt32(buffer, 1);
                WriteMtString(buffer, myRoomCsv.MandragoraName1);
                WriteByteArray(buffer, Mandragora1);
                WriteUInt32(buffer, myRoomCsv.MandragoraId2);
                WriteByte(buffer, 1);
                WriteUInt32(buffer, 2);
                WriteMtString(buffer, myRoomCsv.MandragoraName2);
                WriteByteArray(buffer, Mandragora2);
                WriteUInt32(buffer, myRoomCsv.MandragoraId3);
                WriteByte(buffer, 1);
                WriteUInt32(buffer, 3);
                WriteMtString(buffer, myRoomCsv.MandragoraName3);
                WriteByteArray(buffer, Mandragora3);
                WriteByteArray(buffer, Mandragora4);

            }

            public override S2CMandragoraGetMyMandragoraRes Read(IBuffer buffer)
            {
                S2CMandragoraGetMyMandragoraRes obj = new S2CMandragoraGetMyMandragoraRes();
                return obj;
            }


            private readonly byte[] Mandragora0 =
            {
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1,
                0x0, 0x0, 0x43, 0xDA, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x43, 0xDB, 0x0, 0x0, 0x0, 0x3,
                0x0, 0x0, 0x43, 0xDC, 0x0, 0x0, 0x0, 0x3
            };

            private readonly byte[] Mandragora1 =
            {
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
                0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
                0x0, 0x0, 0x0, 0x0
            };

            private readonly byte[] Mandragora2 =
            {
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
                0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
                0x0, 0x0, 0x0, 0x0
            };

            private readonly byte[] Mandragora3 =
            {
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
                0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
                0x0, 0x0, 0x0, 0x0
            };

            private readonly byte[] Mandragora4 =
            {
                0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x1B, 0xE3, 0x83, 0x80, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB8,
                0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0x83, 0xE3,
                0x83, 0x88, 0x2, 0x0, 0x6, 0xE7, 0xB4, 0xA0, 0xE6, 0x9D, 0x90, 0x0, 0x0, 0x0, 0x1, 0x5,
                0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x46, 0x27, 0x0, 0x0, 0x0, 0x1,
                0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x0, 0x1, 0x0, 0xF, 0xE3, 0x83,
                0x8E, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0,
                0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x9, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xAA, 0xE7, 0xA8, 0xAE,
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0xF, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB,
                0xE3, 0x83, 0x93, 0xE3, 0x83, 0x8E, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
                0x6, 0x0, 0xC, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xA3, 0xE3, 0x82, 0xB3, 0xE7, 0xA8, 0xAE, 0x0,
                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x9, 0xE3, 0x83, 0x99, 0xE3, 0x82, 0xB8, 0xE7,
                0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x9, 0xE9, 0x8E, 0xA7, 0xE4,
                0xBA, 0x9C, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x9, 0xE8,
                0xA1, 0xA3, 0xE4, 0xBA, 0x9C, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
                0x0, 0x9, 0xE8, 0x8A, 0xB1, 0xE4, 0xBA, 0x9C, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0,
                0x0, 0x0, 0x8, 0x0, 0x9, 0xE8, 0x9B, 0xAE, 0xE4, 0xBA, 0x9C, 0xE7, 0xA8, 0xAE, 0x0, 0x0,
                0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x9, 0xE5, 0xB7, 0xBB, 0xE4, 0xBA, 0x9C, 0xE7, 0xA8,
                0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0, 0x9, 0xE9, 0x89, 0xA2, 0xE4, 0xBA,
                0x9C, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x0, 0x9, 0xE7, 0x89,
                0xB9, 0xE5, 0x88, 0xA5, 0xE7, 0xA8, 0xAE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
                0x0, 0x0, 0x1, 0x0, 0xC, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x20, 0x52, 0x61, 0x72,
                0x65, 0x0, 0x0, 0x0, 0x2, 0x0, 0x6, 0x43, 0x6F, 0x6D, 0x6D, 0x6F, 0x6E, 0x0, 0x0, 0x0,
                0x3, 0x0, 0x8, 0x55, 0x6E, 0x63, 0x6F, 0x6D, 0x6D, 0x6F, 0x6E, 0x0, 0x0, 0x0, 0x4, 0x0,
                0x4, 0x52, 0x61, 0x72, 0x65, 0x0, 0x0, 0x0, 0x5, 0x0, 0xB, 0x4D, 0x79, 0x73, 0x74, 0x69,
                0x63, 0x20, 0x52, 0x61, 0x72, 0x65, 0x0, 0x0, 0x0, 0x3, 0x1, 0x2, 0x3, 0x0, 0x0, 0x0,
                0x1E, 0x1, 0x0, 0x0, 0x0, 0x0, 0x5D, 0x99, 0x3C, 0x90, 0x0
            };
        }
 
    }
}
